﻿using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sebra.Academico.InfraEstrutura.Core.Helper;
using Sebrae.Academico.Trilhas.BP;
using Sebrae.Academico.Trilhas.Dominio.Classes;

namespace Sebrae.Academico.Trilhas.WebForms.Cadastros.TopicoTematico
{
    public partial class ListarTopicoTematico : System.Web.UI.Page
    {

        private ManterTrilhaTopicoTematico manterTrilhaTopicoTematico = null;

        protected void Page_Load(object sender, EventArgs e) { }

        protected void dgvTopicoTematico_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName.Equals("delete"))
            {
                manterTrilhaTopicoTematico = new ManterTrilhaTopicoTematico();
                int idTrilhaTopicoTematico = int.Parse(e.CommandArgument.ToString());
                manterTrilhaTopicoTematico.ExcluirTrilhaTopicoTematico(new TrilhaTopicoTematico() { ID = idTrilhaTopicoTematico });
                Response.Redirect("ListarTopicoTematico.aspx");
            }
            else if (e.CommandName.Equals("editar"))
            {
                int idTrilhaTopicoTematico = int.Parse(e.CommandArgument.ToString());
                Session.Add("TrilhaTopicoTematicoEdit", idTrilhaTopicoTematico);
                Response.Redirect("EdicaoTopicoTematico.aspx", false);
            }
        }

        protected void btnNovo_Click(object sender, EventArgs e)
        {
            Response.Redirect("EdicaoTopicoTematico.aspx");
        }

        private TrilhaTopicoTematico ObterObjetoTrilhaTopicoTematico()
        {
            TrilhaTopicoTematico trilhaTopicoTematico = new TrilhaTopicoTematico();

            if (!string.IsNullOrWhiteSpace(this.txtNome.Text))
                trilhaTopicoTematico.Nome = this.txtNome.Text.Trim();

            return trilhaTopicoTematico;
        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    TrilhaTopicoTematico trilhaTopicoTematico = ObterObjetoTrilhaTopicoTematico();
                    manterTrilhaTopicoTematico = new ManterTrilhaTopicoTematico();
                    IList<TrilhaTopicoTematico> ListaTrilhaTopicoTematico = manterTrilhaTopicoTematico.ObterTrilhaTopicoTematicoPorFiltro(trilhaTopicoTematico);
                    WebFormHelper.PreencherGrid(ListaTrilhaTopicoTematico, this.dgvTopicoTematico);
                }
                catch (Exception ex)
                {
                    //TODO -> Exibir mensagem de Erro em um alert ? -> Precisamos definir isso
                    throw ex;
                }
            }
        }

    }
}